PITCH WIZARD USER’S MANUAL

About the author

Introduction

Parameters Explained

Attributes Explained

Technology & Licences

Acknowledgements

Contact


About the author


I’m a European (French) student recently graduated in computer science applied to business management.
I’m member of the Moov’Art’ association which activity is centered around audiovisual projects.
As my passion is around sound, music and multimedia, I also decided to contribute in the development of Buzz plugins.
And that’s it, after months , one of my dreams is coming true : my first DSP effect, the Pitch Wizard !

Back to top


Introduction


So what can do this machine for you ?

Here’s a short non-exhaustive list of what features you can manage with it :

(1) Many old generators couldn’t manage the new pitch wheel MIDI messages available with Buzz Overloader.
     - Plug in your MIDI keyboard to your computer.
     - Connect the Pitch Wizard after a generator.
     - Set up the same midi channel for both generator and Pitch Wizard.
     - Set the pitch wheel amplitude for each track.
     - Play with your MIDI keyboard's pitch wheel!

(2) Tired of sung or speech samples that you can’t transpose without getting a Mickey Mouse’s or Dark Vador’s voice ?
     - Select the "Vocals" process in Pitch Wizard tracks.
     - Adapt the "FFT Size" and "Partial Treshold" to the input voice sample.
     - Transpose it as you wish.
     (Don’t expect more than 1 octave up and down : some things still remain utopia)

(3) Do you feel lazy and have a fast CPU ?
     Make your chords dynamically :
     - Add tracks to the Pitch Wizard and set the relative transpositions of notes :
     - Use the "Scaling" parameters on each track.
     One key pressed, a chord out of your speakers !

(4) Do you want to apply different effects to each Pitch Wizard track ?
     (delay on the higher chord partial, vibrato on the lower, etc ...):
     - Select an "AuxBus" channel for the desired track.
     - Set the Auxbus return machine to work with Pitch Wizard
     - Connect the desired effects after the AuxReturn machines !

(5) Tired of recurrent pad presets ?
     - Connect Pitch Wizard after a generator.
     - Set up the "inertia" parameter of scaling slides and tweak it.
     You will get more evolutive pads with moving partials !

Back to top


Parameters explained


(1) FFT Size: Size of the FFT transform used to process analysis and synthesis.
     (This value has to be tweaked according to the voice input type in "Vocals" mode.
     Female voices need lower FFT sizes than male voices.
     More generally each voice will need different settings.
     This is up to you to set the correct value.
     To refine the settings, use the "Partial Treshold" parameter.

(2) Partial Treshold: Dedicated to control the formant processing according to different voice types.
     Very usefull to reproduce the grain of a voice.
     (Works only for tracks using the "Vocals" mode).
     Just try it to understand.

(3) Global Pitch Wheel Range: value (semitones) in which the pitch wheel works.
     This parameter controls all the tracks "Pitch Wheel Range" parameter.

(4) Pitch Wheel: Position of the pitch wheel

(5) Global Start Scaling: Initial value of transposition for all tracks when setting a scaling slide inertia.
     Instantaneous transposition level else.
     (Doesn’t modify the sound while a slide is in progress, just sets the start value to use in the next slide).

(6) Global Stop Scaling: Final value of transposition for all tracks when setting a scaling slide inertia.
     Instantaneous transposition level else.
     (Modifies the sound while a slide is in progress by interpolating values : possibility of non-linear slides).

(7) Global Scaling Inertia: Length of the global scaling slide for all tracks(in Ticks)
     Instantaneous transposition activated if length = 0.

(8) Processing: Processing type :
     - "Instruments" mode processes only a pure pitch scaling.
     - "Vocals" mode processes a pitch scaling with formant preservation.
     (listen and make your choice)

(9) Track's Pitch Wheel Range: value (semitones) in which the pitch wheel works for this track.
     Allows guitar style bendings when set appropriately.

(10)Track's Start Scaling: Initial value of transposition when setting a scaling slide inertia.
     Instantaneous transposition level else.
     (Doesn’t modify the sound while a slide is in progress, just sets the start value to use in the next slide).

(11)Track's Stop Scaling: Final value of transposition when setting a scaling slide inertia.
     Instantaneous transposition level else.
     (Modifies the sound while a slide is in progress by interpolating values : possibility of non-linear slides).

(12) Track's Scaling Inertia: Length of the track's scaling slide (in Ticks)
     Instantaneous transposition activated if length = 0.

(13) Auxiliary Bus: Redirection to two internal auxiliary bus channels of Buzz.
     Allows to process scaling and separate Stereo channels in two mono channels.
     WARNING about linking Pitch Wizard to a stereo input :
     The CPU will have to calculate more or less two times more data...

(14) Volume: Volume of this track

Back to top


Attributes Explained


(1) Frame Overlap : Overlap rate of synthesis frames after each inverse FFT (Inverse Fast Fourier Transform)
     This attribute is VERY IMPORTANT:
     Low values imply less quality in pitch scaling, but less CPU consumption.
     High values imply good quality in pitch scaling but more CPU comsumption.
     By default, I set it to 75%, which is a good compromise between quality and algorithmic speed.

(2) MIDI channel: MIDI channel used to control the pitch wheel parameter with your MIDI keyboard's physical pitch wheel.

(3) Volume Fade Timing: Anti-click system inertia when moving the "Volume" slider:
     - Increase the value if you experiment clicks when moving the "Volume" slider.
     - Decrease the value if you find that the "Volume" slider response is too delayed.

(4) Pitch Wheel Timing: Anti-click system inertia when moving the "Pitch Wheel" slider.
     - Increase the value if you find that the sound changes are not "fluid" enough when moving the "Pitch Wheel" slider.
     - Decrease the value if you find that the sound changes are too delayed when moving the "Pitch Wheel" slider.

Back to top


Technology & Licences


Pitch Wizard License

Pitch Wizard (c)
Version 0.5 beta (April 2004)

Buzz Effect : Pitch Scaling routines

COPYRIGHT 2004 Marc Alvarez (mad.knight@laposte.net)

Permission to use, copy and distribute this software and its documentation
for any purpose and FOR FREE is hereby granted without fee, provided that
the above copyright notice and this license appear in all source copies.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
The source code is not distributed.
It remains property of the author and should not be recovered from reverse engineering
neither sold or distributed in any way.

This software is based on freeware source code:


The FFT engine is a freeware code:

FFTReal
Version 1.03, 2001/06/15
Class of Fourier transformation of real data (FFT and IFFT)
Portable ISO C++
(c) Laurent de Soras ldesoras@club-internet.fr


The Pitch Scaling algorithm is DERIVED from a freeware code:

NAME: smsPitchScale.cp
VERSION: 1.01
HOME URL: http://www.dspdimension.com
KNOWN BUGS: none

SYNOPSIS: Routine for doing pitch scaling while maintaining duration using the Short Time Fourier Transform.

COPYRIGHT 1999 Stephan M. Sprenger <sms@dspdimension.com>


I used Oskari’s XDSP

Available @ http://www.jeskola.net

Back to top


Acknowledgements


I wish to thank many people that contributed in a way to this project :

- Oskari Tammelin for having made Buzz, the API, and the XDSP library @ www.jeskola.net

- Marc Van Agteren who keeps the treasures @ www.buzzmachines.com

- DJ Laser @ www.buzzxp.com

- Edward Blake for his detailed guide to build Buzz machines

- Miko Appo for his helpful machine template @  http://web.hibo.no/~mva/dev/ch_template106.zip

- Stephen Sprenger for his useful article about pitch scaling and a piece of his code @ www.dspdimension.com

- Steven W. Smith for his wonderful DSP book @ www.dspguide.com

- Laurent de Soras which FFTReal routines are the core of this plugin (I don’t remember where I got his package but here’s his mail : ldesoras@club-internet.fr

- Matteo Frigo’s team who is in charge of the FFTW project (ultra fast FFTs) @ www.fftw.org (I wish I could use FFTW routines but I would have to distribute Buzz sources to comply with the GNU GPL, and as Buzz is not open source I used FFTReal)

- My girlfriend who supported me along this long and hard trip (no mail neither picture, sorry ...)

- all Buzz community members that help keeping this virtual studio the best as it can be

 


Contact


 

You can send a mail to mad.knight@laposte.net for comments, suggestions, bug reports, songs made with this plugin, or even commercial adaptation requests and job proposition ...

 Back to top